<?php
/*
 *      osobjects.php
 *
 *      Copyright 2010 Vitaliy Rakitin <virak@ukr.net>
 *
 *      This program is free software; you can redistribute it and/or modify
 *      it under the terms of the GNU General Public License as published by
 *      the Free Software Foundation; either version 2 of the License, or
 *      (at your option) any later version.
 *
 *      This program is distributed in the hope that it will be useful,
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *      GNU General Public License for more details.
 *
 *      You should have received a copy of the GNU General Public License
 *      along with this program; if not, write to the Free Software
 *      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 *      MA 02110-1301, USA.
 */

require_once($_SERVER['DOCUMENT_ROOT']."/classes/System/osdictionary.php");
require_once($_SERVER['DOCUMENT_ROOT']."/classes/System/osdocument.php");
require_once($_SERVER['DOCUMENT_ROOT']."/classes/System/osaccregister.php");
require_once($_SERVER['DOCUMENT_ROOT']."/classes/DB/DB.php");
require_once($_SERVER['DOCUMENT_ROOT']."/classes/system.php");

class osobjects {

	function add($type) {
		return new $type(genuuid());
	}

	function count($type = null) {
		$sql = "SELECT count(*) as count FROM objects WHERE type = '$type';";
		$result = DB::select($sql);
		return $result[0]["count"];
	}

	function getall($type = null) {
		if (isset($type)) {
			$sql = "SELECT * FROM objects WHERE type = '$type';";
		} else {
			$sql = "SELECT * FROM objects;";
		}
		return DB::select($sql);
	}

	function byuuid($uuid) {
		$sql = "SELECT * FROM objects WHERE id = '$uuid';";
		$result = DB::select($sql);
		if (!empty($result[0])) {
			return new $result[0]["type"]($result[0]["id"]);
		} else return null;
	}

	function byname($name) {
		$sql = "SELECT * FROM objects WHERE name = '$name';";
		$result = DB::select($sql);
		if (!empty($result[0])) {
			return new $result[0]["type"]($result[0]["id"]);
		} else return null;
	}

	function __get($name) {
		$sql = "SELECT * FROM objects WHERE name = '$name';";
		$result = DB::select($sql);
		if (!empty($result[0])) {
			return new $result[0]["type"]($result[0]["id"]);
		} else return null;
	}
}
?>

